package com.dotflat.fin.dto;

import com.dotflat.rest.domain.AreableObjectBase;
import com.matt.domain.Contract;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.UpdateTimestamp;

import javax.persistence.*;
import java.util.Date;

/**
 *  账单对象
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class PayOrderListDTO extends AreableObjectBase {

    @Column(columnDefinition = "VARCHAR(32) COMMENT '订单号'", nullable = false)
    private String orderSn;

    @Column(columnDefinition = "VARCHAR(32) COMMENT '计划名称'", nullable = false)
    private String planName;

    @Column(columnDefinition = "VARCHAR(32) COMMENT '计划Id'", nullable = false)
    private String planId;

    @Column(columnDefinition = "VARCHAR(32) COMMENT '付款的合同'", nullable = false)
    private String contractId;

    @Column(columnDefinition = "VARCHAR(32) COMMENT '客户id， 冗余'", nullable = false)
    private String clienteleId;

    @Column(columnDefinition = "VARCHAR(128) COMMENT '账单标题'", nullable = false)
    private String title;

    @Column(columnDefinition = "VARCHAR(128) COMMENT '备注'", nullable = false)
    private String remark;

    @Column(columnDefinition = "VARCHAR(128) COMMENT '脚注'", nullable = false)
    private String footnote;

    @UpdateTimestamp
    @Column(columnDefinition="DATETIME COMMENT '最后更新时间'")
    private Date modifyTime;

    @Column(columnDefinition = "INT COMMENT '支付状态0:未付款; 1:已付款, 2:支付中'")
    private Integer payStatus;

    @Column(columnDefinition = "VARCHAR(16) COMMENT '实付类型:alipay,wechat'")
    private String payType;

    @Column(columnDefinition = "VARCHAR(32) COMMENT '支付成功时间'")
    private Date paiedTime;

    @Column(columnDefinition = "INT COMMENT '总金额'")
    private Integer totalAmount;
}
